{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bbd8585e-0a28-4fd9-80b5-690569f93e16",
   "metadata": {},
   "outputs": [],
   "source": [
    "#This notebook will help you to get top tech products with by providing category and subcategory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "df039118-f462-4a8b-949e-53d3a726e292",
   "metadata": {},
   "outputs": [],
   "source": [
    "# imports\n",
    "\n",
    "import os\n",
    "import requests\n",
    "from dotenv import load_dotenv\n",
    "from bs4 import BeautifulSoup\n",
    "from IPython.display import Markdown, display\n",
    "from openai import OpenAI\n",
    "aa"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e2ffd2e5-d061-446c-891e-15a6d1958ab6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load environment variables in a file called .env\n",
    "\n",
    "load_dotenv(override=True)\n",
    "api_key = os.getenv('OPENAI_API_KEY')\n",
    "\n",
    "# Check the key\n",
    "\n",
    "if not api_key:\n",
    "    print(\"No API key was found - please head over to the troubleshooting notebook in this folder to identify & fix!\")\n",
    "elif not api_key.startswith(\"sk-proj-\"):\n",
    "    print(\"An API key was found, but it doesn't start sk-proj-; please check you're using the right key - see troubleshooting notebook\")\n",
    "elif api_key.strip() != api_key:\n",
    "    print(\"An API key was found, but it looks like it might have space or tab characters at the start or end - please remove them - see troubleshooting notebook\")\n",
    "else:\n",
    "    print(\"API key found and looks good so far!\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "92e26007-521f-4ea2-9df9-edd77dd7e183",
   "metadata": {},
   "outputs": [],
   "source": [
    "openai = OpenAI()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "27d21593-8feb-42e4-bbc0-2e949b51137d",
   "metadata": {},
   "outputs": [],
   "source": [
    "def tech_product(category_subcategory_budget):\n",
    "    parts = category_subcategory_budget.split('_')\n",
    "    return f\"{parts[0]}-{parts[1]}-{parts[2]}\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dd978d25-5b84-4122-af7c-116f2bf72179",
   "metadata": {},
   "outputs": [],
   "source": [
    "def messages_for(products):\n",
    "    return [\n",
    "        {\"role\": \"system\", \"content\": \"you are a tech product expert and you need to suggest the best suited product available in India basis the input received in the form of category-subcategory-budget (in inr),\\\n",
    "          revert with category and subcategory and show the product links as well along with pros and cons, respond in markdown\"},\n",
    "        {\"role\": \"user\", \"content\": tech_product(products)}\n",
    "    ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b916db7a-81a4-41d9-87c2-a2346fd874d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "messages_for(\"phone_gaming_40000\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3b4bb3f1-95de-4eb5-afe1-068744f93301",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_top_products(category_subcategory):\n",
    "    response = openai.chat.completions.create(\n",
    "        model = \"gpt-4o-mini\",\n",
    "        messages= messages_for(category_subcategory)\n",
    "    )\n",
    "    return response.choices[0].message.content    \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c9272942-acfe-4fca-bd0a-3435c1ee6691",
   "metadata": {},
   "outputs": [],
   "source": [
    "get_top_products('phone_gaming_30000')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2c2b3b9a-aceb-4f00-8c8d-8f6837ab94fc",
   "metadata": {},
   "outputs": [],
   "source": [
    "def display_markdown(category_subcategory_budget):\n",
    "    output = get_top_products(category_subcategory_budget)\n",
    "    display(Markdown(output))\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6c135dd7-4ed4-48ee-ba3f-9b4ca1c32149",
   "metadata": {},
   "outputs": [],
   "source": [
    "display_markdown('Console_gaming_100000')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0ba06c55-7ef9-47eb-aeaf-3c4a7b29bccc",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
